package cn.edu.hunau.oop.day01;

import org.junit.Test;

import java.util.Arrays;

/**
 * @author hb
 * @date 2025-08-04 11:02:49
 */
public class MyArray {

    @Test
    public void test(){
        //对实现的方法进行测试
        int [] arr=new int[5];
        arr= add(arr,100);
        System.out.println(Arrays.toString(arr));
        arr= add(arr,2,99);
        System.out.println(Arrays.toString(arr));
        arr= remove(arr,3);
        System.out.println(Arrays.toString(arr));
    }
    /**
     * TODO:向数组arr的末尾添加数据data.
     * @param arr
     * @param data
     */
    public int[] add(int[] arr,int data){
        //扩容
        int[] newArray= Arrays.copyOf(arr, arr.length+1);
        newArray[newArray.length-1]=data;
        return newArray;

   }
    /**
     * TODO:向数组arr指定的位置index添加数据data
     * @param arr
     * @param index
     * @param data
     */
    public int[] add(int[] arr,int index,int data){
        int[] target=new int[arr.length+1];

        System.arraycopy(arr,0,target,0,index);
        target[index] = data;
        System.arraycopy(arr,index,target,index+1,arr.length-index);

        return target;

    }
    /**
     * TODO:将数据arr中指定位置index的数据删除
     * @param arr
     * @param index
     */
    public int[] remove(int[] arr,int index){
        int[] target=new int[arr.length-1];
        System.arraycopy(arr,0,target,0,index);
        System.arraycopy(arr,index+1,target,index,arr.length-index-1);
        return target;
    }
}
